Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Системи автоматизованого проектуваня

Інформація про роботу

Рік:
2008
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютерна лінгвістика
Група:
ПРЛс

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра “Системи автоматизованого проектування” ЗВІТ до лабораторної роботи №4 з дисципліни «Комп’ютерна лінгвістика» на тему: ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ. ОБРОБКА ОКРЕМИХ СЛІВ (підрахунок слів та лексична база даних англійської мови). Виконала: студентка групи ПРЛс-1 ЛЬВІВ-2008 МЕТА РОБОТИ Вивчення основ програмування на мові Python. Ознайомлення із способами підрахунку слів. Ознайомлення з лексичною базою даних англійської мови WordNet. КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ Оскільки, при роботі з текстом часто потрібно здійснювати подібні обчислення то в NLTK реалізовано окремий клас FreqDist(). Розподіл (місця в тексті де вони зустрічаються) tokens слів змінюється по тексту. Можна візуалізувати такий розподіл. Можна використати частотний розподіл для визначення довжин слів у корпусі. Для кожного слова визначаємо його довжину і збільшуємо лічильник, який відповідає словам з даною довжиною. Частотні розподіли дозволяють проводити підрахунок кількості вживання кожного слова в тексті. Узагальнимо цю ідею, щоб проаналізувати розповсюдження слів в певному контексті. Умовний частотний розподіл це набір частотних розподілів, кожен один для іншої умови. За умову приймемо попереднє слово. У наступні програмі визначена функція train_model(), яка використовує ConditionalFreqDist() щоб перерахувати слова, в залежності від контексту, визначеного попереднім словом (запам'ятовується в prev). Ця функція переглядає корпус, збільшуючи відповідний лічильник, і оновлюючи значення, яке відповідає попередньому слову. Функція generate_model() містить простий цикля, який генерує текст: встановлюємо початковий контекст і програма вибирає слово, яке найчастіше зустрічається в цьому контексті. Це слово буде наступним після поточного слова (використовується метод max()), і яке потім використовується, як новий контекст. Цей простий підхід до генерації тексту швидко приводить до зациклювання, потрібен інший метод для вибору наступного слова серед доступних слів. Колокації це пари слів, які зустрічаються частіше ніж окремі слова в тексті. Можна знайти колокації підрахувавши, як часто пари слів зустрічаються в тексті порівняно з загальною кількістю вживань цих слів у тексті. Наступна програма здійснює такі підрахунки (стор.8). WordNet, це семантично орієнтований словник англійської мови, подібний до традиційних тезаурусів але з більш багатою структурою. У WordNet слова групуються у набори синонімів – синсети, кожен із своїм визначенням і зв’язками з іншими синсетами. WordNet 3.0 розповсюджується разом з NLTK і містить 145000 синсетів. Хоча WordNet розроблявся для психолінгвістики - цей словник широко використовується в NLP та в задачах інформаційного пошуку. Семантична подібність двох понять пов’язана з довжиною шляху між цими поняттями в WordNet . Пакет wordnet містить багато засобів для здійснення таких вимірювань (Leacock-Chodorow, Wu-Palmer, Resnik, Jiang-Conrath, Lin ). Наприклад path_similarity (присвоює значення від 0 до 1) базується на найкоротшому шляху, який поєднує поняття за ієрархією гіперонімів (-1 означає що шлях (спільний гіперонім) не знайдено). ТЕКСТИ ПРОГРАМ НА МОВІ Python Модифікувати функцію generate_model() використовуючи random.choose() метод для випадкового вибору наступного слова з набору доступних слів. >>> import nltk >>> from nltk import corpus >>> import random >>> def train_model(text): cfdist = nltk.ConditionalFreqDist() prev = None for word in text: cfdist[prev].inc(word) prev = word return cfdist >>> def generate_model(cfdist, word, num=20): for i in range(num): print word, word = random.choice(list(cfdist[word])) >>> model = train_model(nltk.corpus.genesis.words('english-kjv.txt')) >>> generate_model(model, 'die') die before they and came and followed the excellency of Ur of Aholibamah , Cast out this pit : wherefore 7. .М...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини